<?php

/**
 * 注册控制器
 */
class RegisterController extends Controller {
	private $model;
	/**
	 * 控制器实例化的时实例化UserModel
	 */
	public function __init() {
		$this -> model = K('Users');
	}

	/**
	 * 显示注册主页面
	 */
	public function index() {
		$this -> display();
	}

	/**
	 * 当前台验证通过将数组发送到这个方法定稿数据库
	 */
	public function reg() {
		if (IS_POST) {
			//给表单添加正确的验证码
			if ($_POST['code'] != strtolower(session('code'))) {
				$this->error('验证码输入不正确');
			}
			$user = $this -> model -> addUser();
			if (!$user) {
				$this -> error($this -> model -> error);
			} else {
				//当注册成功后将此用户添加到session中登陆
				session('uid', $user['uid']);
				session('username', $user['username']);
				$this -> success('用户注册成功啦~!^_^', 'Index/index');
			}
		}

	}

	/**
	 * ajax检测用户是否存在
	 */
	public function checkUserExists() {
		//得到当前注册的用户名
		if (IS_AJAX) {
			$username = Q('post.username');
			$result = $this -> model -> where("username='{$username}'") -> find();
			//如果查询结果为空那么返回true表示用户可以被注册
			//否则 返回false
			if (empty($result)) {
				$this -> ajax(array('message' => '用户可以注册', 'status' => true));
			} else {
				$this -> ajax(array('message' => '用户已经被注册请更换', 'status' => false));
			}
		}

	}

	/**
	 * 判断验证码是否正确
	 */
	public function checkCodeIsRight() {
		if (IS_AJAX) {
			//将验证码转为 大写因为默认情况下框架中的验证码为大写
			$code = strtoupper(Q('post.code'));
			//如果当前的验证码不等于session中的验证码那么
			//返回一个错误 的状态信息
			if ($code != session('code')) {
				$this -> ajax(array('message' => '验证码输入不正确', 'status' => false));
			} else {
				$this -> ajax(array('message' => '验证码正确', 'status' => true));
			}
		} else {
			$this -> error('非法请求', U('Index/Index/index'));
		}

	}

	/**
	 *  验证码方法
	 */
	public function code() {
		$code = new Code();
		$code -> show();
	}

}
